package com.ljh.ioc.component;

import com.ljh.ioc.model.Student;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;

/**
 * @author: Themberfue
 * @date: 2025/2/17 22:29
 * @description:
 */
@Component
public class StudentComponent {
    // * 存在多个相同对象(Student)存入 Bean 时，使用 @Primary 指定使用哪个对象
// ?    @Primary
    @Bean({"s3", "s4"})
    public Student s1() {
        return new Student("zhangsan", 18);
    }

//    @Bean
//    public Student s2() {
//        return new Student("lishi", 19);
//    }

    @Bean // * 将名为 name 的 String 对象交给 Spring 控制 (name 在整个项目里只能存在一个)
    public String name() {
        return "lishi";
    }

    @Bean
    public String name2() {
        return "wangwu";
    }

    @Bean // * 拿到 Spring 控制 name
    public Student s2(@Qualifier("name") String n) { // * 存在多个相同对象(String)存入 Bean 时，使用 @Qualifier 指定使用哪个对象
        return new Student(n, 19);
    }
}
